const mongoose = require('mongoose');
/*  用户表

* */
const UserSchema = new mongoose.Schema({
    Account:String,         // 账号
    PassWord:String,        // 密码
    Token:String,           // token
    NickName:String,        // 昵称
    Avatar:String,          // 头像
    Introduce:String,       // 简介
    sex:Number,             // 性别（1男，2女）
    birth:Number,           // 生日（时间戳）
    RegisterTime:Number,    // 注册时间（时间戳）
    Region:String,          // 地区（xxxx,xxxx,xxxx）地区编码
    LoginIp:Array,          // 登录IP信息(最多存几百条)（ip，地区，时间）
    IsAbleUse:Boolean,      // 是否被限制登录
    RemainingLogins:Number, // 剩余试错登录次数
    Identity:String         // 身份（求职者(JobSeekers)，招聘者(Recruiter)）
});
exports.UserModel = mongoose.model('User',UserSchema) // 集合的名称为user


/*  个人中心信息表

* */
exports.UserCenterSchema = new mongoose.Schema({
    UserId:String,          // 用户id
    ChatCount:Number,       // 沟通次数
    EstablishCount:Number,  // 简历投递次数
    CollectCount:Number,    // 收藏数量
    IsVip:Boolean,          // 是否是vip
    VipPurchaseTime:Number  // vip购买时间
});

/*  聊天表
        （发送成功后直接存入数据库，然后订阅，发布将数据推送到另外一个，有个isread用来判断对方是否已读）
* */
exports.ChartSchema = new mongoose.Schema({
    FromId:String,          // 发送者id
    ToId:String,            // 接收者id
    SendTime:Number,        // 发送时间
    MsgType:String,         // 发送类型（文本，图片）
    Msg:String,             // 消息内容
    IsRead:Boolean,         // 是否已读
});


/*  群聊表
        （消息通知以第订阅发布实现）
* */
exports.ChartGroupSchema = new mongoose.Schema({
    GroupId:String,         // 群聊号
    FromId:String,          // 发送者id
    ToIdS:Array,            // 接受者id数组   [{id:"sd5f4s5d",isRead:false}]
    MsgSendTime:Number,        // 发送时间
    MsgType:String,         // 发送类型（文本，图片）
    Msg:String,             // 消息内容
});

/*  系统通知表
        (可以让用户清空)   管理员进行全局发布
* */
exports.SystemNoticeSchema = new mongoose.Schema({
    UserId:String,              // 用户id
    FromId:String,              // 发送者id（系统管理员）
    MsgIsRead:Boolean,             // 是否已读
    MsgSendTime:Number,            // 发送时间
    MsgNoticeType:String,          // 通知类型  0:纯文本,1:文本+图片,2:标题+文本+图片+链接
    Msg:String,                 // 消息内容
    MsgTitle:String,            // 消息标题
    MsgImgUrl:[String,Array],   // 消息图片
    MsgLink:String              // 消息链接
});



